package be.kdg.bombermanunlimited.client.remote.interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Vector;

import be.kdg.bombermanunlimited.server.objects.interfaces.IPlayer;
import be.kdg.bombermanunlimited.server.remote.interfaces.ITile;

/**
 * IGameListener is een object dat bij aanmaak van een speler wordt doorgestuurd naar de server.
 * via deze objecten, die hij bijhoudt per client, kan de server updates verdelen over de clients.
 * de functienamen spreken voor zich. 
 * @author pieter
 *
 */

public interface IGameListener extends Remote {

	public void setLocalPlayer(IPlayer player) throws RemoteException;

	public void setPlayers(List<IPlayer> players) throws RemoteException;

	public void addPlayer(IPlayer player) throws RemoteException;

	public void updatePlayers(String[] name, int[] row, int[] collumn)
			throws RemoteException;

	public void updatePlayer(int index, IPlayer player) throws RemoteException;

	public void addBomb(int row, int column, int range) throws RemoteException;

	public void setMap(Vector<ITile> map) throws RemoteException;

	public void blowBomb() throws RemoteException;

	public void changeTile(int index) throws RemoteException;

	public void gameOver() throws RemoteException;

	public void setDead(int index) throws RemoteException;
	
	public void startGame() throws RemoteException;
}
